透過繼承,我們可以從原有的類別衍生出新的類別,原有的類別稱為父類別,而衍生出的類別稱為子類別。透過這種機制,子類別不僅可以保有父類別的功能,同時也可以加入新的功能,以符合所需。
抽象類別
此外,JVAV也可以建立專門的類別用來當作父類別,這種類別稱為「抽象類別」(abstract class)。抽象類別的目的在於,可以依據它的格式來修改並建立新的類別。
抽象類別中的abstract函數,只能宣告為public、protected,或者是不做宣告,但是不能宣告成private,以便子類別能取用到它。
abstract class 類別名稱{ //定義抽象類別
宣告成員;
傳回值的資料型態 函數名稱(引數...){
...
}
修飾子 abstract 傳回值的資料型態 函數名稱(引數...);
}
抽象類別的目的是要依據它的格式來修改並建立新的類別,因此抽象類別裡的「抽象函數」並沒有定義處理方式
這句話的意思就是,當我們的子類別中有相同的資料成員要進行處理時,可以統一在父類別中進行函數和資料成員的設定;但是當各個子類別都需要用到相同的函式,但是處理方式不相同時,就可以先在父類別中定義,再把處理方法留在子類別中定義。
abstract class Shape{ //定義抽象類別Shape
protected String color; //資料成員
public void Color(String str){ //一般函數,用來設計形狀的顏色
color = str;
}
public abstract void area(); //抽象函數,在此沒有定義處理方法
}
下方是繼承的子類別所進行的父類別「改寫」。
class Circle extends Shape{ //定義子類別Circle
protected double radius; //資料成員
public Circle(double r){ //建構元
radius = r;
}
public abstract void area(){ //抽象函數,在此沒有定義處理方法
System.out.println("color= "+color+", ");
System.out.println("area= "+3.14*radius*radius);
}
}
菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link
中秋連假第三天一樣non-stop!!
See U tomorrow:))